1. Field of the Invention
The invention relates generally to color presentation systems that present color data objects produced in accordance with an input ICC profile on a presentation device associated with an output ICC profile. More specifically, the invention is useful in an AFP architecture where a presentation device provides a Link Color Management Resource (CMR) to determine the preferred size for the lookup table incorporated in the Link CMR.
2. Discussion of Related Art
In color presentation devices (e.g., color printers and displays) a color object is typically created by a device or application and transferred to the presentation device for output to a user. The device or application that generated the color data object has a color profile associated therewith. The color profile defines parameters and aspects of the color capabilities of the device or application. This profile may be referred to herein as an input profile. The presentation device typically has different color capabilities and thus has different parameters and aspects defining its capabilities. The parameters of the presentation device are defined in a color profile associated with the presentation device and is referred to herein as an output profile.
As is generally known in the art, the parameters that define the color capabilities of a device or application may be specified in a number of different manners. Color capabilities may be defined, for example, in an “RGB space” (defined in terms of red, green, and blue colors) or may be defined, for example, in a “CMYK space” (defined in terms of cyan, magenta, yellow, and block colors). Numerous other color spaces may be used to define capabilities of a device or application.
Further, the format for defining such input or output profiles has been defined by an industry consortium, namely, the International Color Consortium (the ICC see, e.g., www.color.org). The ICC provides an ICC profile as a standardized format for defining the color profile information for a device or application. Device profiles provide color management systems with the information necessary to convert color data between native device color spaces and device independent color spaces. For each device class (input devices, output devices and others), a series of base algorithmic models are described which perform the transformation between color spaces. These models provide a range of color quality and performance results which provide different trade-offs in memory footprint, performance and image quality.
The ICC device profiles are standardized and obtain their openness by using a well-defined reference color space and by being capable of being interpreted by any ICC operating system or application that is compliant with the specification. In combination with profiles for other devices color transformations may be determined that enable colors captured on one device (e.g., an input device such as a scanner, a camera, etc.) to be reproduced satisfactorily on many other devices (e.g., output devices such as printers, etc.). The information required in the profile is adequate to ensure the level of color fidelity selected by the user and for the design of a default color management module (CMM) to transform color information between native device color spaces. Such CMMs are found in many operating systems and applications.
In processing a color object in a presentation device (e.g., an output device such as a printing system), the device controller performs calculations to convert the color space defined in the input profile associated with the input device/application that generated the color object into the color space of the presentation device. This conversion is performed according to ICC specification through a profile connection space (PSC). This connection space interface which provides an unambiguous connection between the input and output profiles. It allows the profile transforms for input and output devices to be decoupled so that they can be produced independently. The well-defined PCS of ICC provides the common interface for the individual device profiles. It is the virtual destination for input transforms and the virtual source for output transforms. If the input and output transforms are based on the same PCS definition, even though they are created independently, they can be paired arbitrarily at run time by the color-management engine (CMM) and will yield consistent and predictable results when applied to color values. In general, a pixel value is converted from the input device color space using information in the input profile into a form defined by the PSC. This intermediate value may then be converted from the PSC form into the color space of the output device by use of information in the output profile. Thus a pixel value is converted fro the input device color space to the output device color space through the intermediate form of the PSC.
In an Advanced Function Presentation (AFP) environment as defined by InfoPrint Solutions Company and IBM a Color Management Resource Engine (CMRE) creates Color Management Resource (CMR) objects to perform color management. These CMRs include Color Conversion CMRs, Link Color Conversion CMRs, Index CMRs, etc. A Color Conversion CMR may incorporate an ICC input profile (also sometimes referred to as an audit profile) or may incorporate an ICC output profile (also sometimes referred to as an instruction profile). An ICC profile may specify color information in a variety of ways including, for example, equations that are applied to a pixel value to generated a new pixel value in a different color space. A profile may also include a color lookup table (CLUT) that translates an input value to a corresponding output value. The CLUT is used to provide for interpolation of a pixel value by interpolating between table entry values to obtain a new pixel value in a different color space. In an AFP presentation device a CMR object may include a lookup table (LUT) generated based on an ICC profile.
In AFP devices, a Link CMR is generated by combining the ICC input profile of the device or application that generated an AFP graphical data object and the ICC output profile of the presentation device on which the AFP data object is to be presented (i.e., rendered). The Link CMR typically includes a Link LUT that mathematically combines an input LUT associated with the input profile and an output LUT associated with the presentation device. Thus the Link CMR may be re-used for Color Conversion of multiple data objects generated from the same source device or application.
The size of the Link LUT is generally a function of the sizes of the input and output LUTs. The size of such an interpolation table in part determines the accuracy of the mathematical conversions that may be generated by interpolating between entries of the table. If the table is larger, specifying more input data points corresponding to specified output values, the interpolation between table entry values risks less loss of accuracy—in other words the dense, large interpolation table is capable of generating improved conversion that more accurately represents the underlying function. However, generating such a larger table may be time consuming. Further, depending on the level off accuracy that the input device and output (presentation) device may be capable of processing, too large of an interpolation table may simply be wasted. Thus there is a tradeoff to balance the size of the interpolation table to achieve desired accuracy with time required for creating excessive, un-necessary entries (i.e., as small as possible without loss of desired accuracy in the color reproduction).
It is evident from the above discussion that an ongoing need exists for improved methods and apparatus for determining a preferred size of a Link LUT to reduce loss of accuracy in color reproduction when using a Link LUT such as in an AFP Link CMR.